home *** CD-ROM | disk | FTP | other *** search
- function ybStartup() {
- try {
- if(ybookmarksUtils.getExtensionMode() == YB_EXTENSION_MODE_CLASSIC) {
- return true;
- }
- var importIcon = document.getElementById("ybImport");
- if(importIcon) {
- importIcon.hidden = false;
- }
- var bookmarksView = document.getElementById("bookmarks-view");
- bookmarksView.setAttribute("class", "ybBookmarksTree");
- } catch (e) {
- yDebug.print("ybBookmarksManager.ybStartup(): " + e, YB_LOG_MESSAGE);
- }
- //Call to builtin Mozilla code.
- setTimeout(Startup, 100);
- }
-
-
- var yb_importChecker = {
-
- _showImportoptions: function(bookmarks) {
-
- var callback = {
-
- _bookmarks : null,
-
- onload: function(result) {
- var propertyBag = result.queryElementAt(0, Components.interfaces.nsIPropertyBag);
- var status = propertyBag.getProperty("status");
- var strings = document.getElementById("yb-strings");
- if (status == "importing") {
- //Show MessageBox.
- var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].
- getService(Components.interfaces.nsIPromptService);
- var title = strings.getString("extensions.ybookmarks.product.name");
- var text = strings.getString("extensions.ybookmarks.import.already.running");
- promptService.alert(this, title, text);
- } else {
- window.openDialog("chrome://ybookmarks/content/importBookmarks.xul", "yb-import-bookmarks",
- "chrome,centerscreen", { bookmarks: this._bookmarks });
- }
- },
- onerror: function() {
- yDebug.print("ybBookmarksManager.yb_importChecker.callback.onerror(): " + e, YB_LOG_MESSAGE);
- }
-
- };
- var ssr = Components.classes["@yahoo.com/socialstore/delicious;1"].
- getService(Components.interfaces.nsISocialStore);
- callback._bookmarks = bookmarks;
- ssr.getImportStatus(callback);
- }
-
- };
-
- function yb_importBookmarks() {
- try {
- // check if user is logged in
- if( !YBidManager.isUserLoggedIn() ) {
- YBidManager.promptUserLogin();
-
- try {
- if (window.ybLoginWindowFlag == "display") {
- YBPopupWindow.showLoginWindow();
- }
- } catch(e) {
- // do nothing
- }
-
- return;
- }
- var rdfService = Components.classes["@mozilla.org/rdf/rdf-service;1"].
- getService(Components.interfaces.nsIRDFService);
- var rdfContainerUtils = Components.classes["@mozilla.org/rdf/container-utils;1"].
- getService(Components.interfaces.nsIRDFContainerUtils);
- var bmDataSource = Components.classes["@mozilla.org/rdf/datasource;1?name=bookmarks"].
- getService(Components.interfaces.nsIRDFDataSource);
- var storeService = Components.classes["@mozilla.org/ybookmarks-store-service;1"].
- getService(Components.interfaces.nsIYBookmarksStoreService);
-
- const rsrcURL = rdfService.GetResource("http://home.netscape.com/NC-rdf#URL");
-
- var strings = document.getElementById("yb-strings");
- var bookmarksView = document.getElementById("bookmarks-view");
- var tree = bookmarksView.tree;
- var builderView = tree.builderView;
- var selection = tree.view.selection;
-
- var colURL = tree.columns.getNamedColumn("URL");
- var colImported = tree.columns.getNamedColumn("Imported");
-
- var start = {};
- var end = {};
- var queue = []; // of resources to process
- for (var i=0; i < selection.getRangeCount(); i++) {
- selection.getRangeAt(i, start, end);
- for (var j = start.value; j <= end.value; j++) {
- var rsrc = builderView.getResourceAtIndex(j);
- queue.push(rsrc);
- }
- }
-
- var bookmarks = [];
- bookmarks.contains = function(item) {
- for (var i=0; i < this.length; i++) {
- if (this[i].rsrc == item) {
- return true;
- }
- }
- return false;
- };
-
- while (queue.length > 0) {
- var rsrc = queue.shift();
- if (bookmarks.contains(rsrc)) {
- continue;
- }
- var urlRsrc = bmDataSource.GetTarget(rsrc, rsrcURL, true);
- if (urlRsrc) { // add bookmark
- urlRsrc.QueryInterface(Components.interfaces.nsIRDFLiteral);
- var imported = (storeService.isBookmarked(urlRsrc.Value) != null);
-
- bookmarks.push({ rsrc: rsrc,
- imported: imported });
-
- } else if (rdfContainerUtils.IsSeq(bmDataSource, rsrc)) { // add folder contents
- var seq = rdfContainerUtils.MakeSeq(bmDataSource, rsrc);
- var seqEnum = seq.GetElements();
- while (seqEnum.hasMoreElements()) {
- var elt = seqEnum.getNext();
- try {
- elt.QueryInterface(Components.interfaces.nsIRDFResource);
- queue.push(elt);
- } catch (e) { }
- }
- }
- }
-
- if (bookmarks.length > 0) {
- yb_importChecker._showImportoptions(bookmarks);
- /*window.openDialog("chrome://ybookmarks/content/importBookmarks.xul", "yb-import-bookmarks",
- "chrome,centerscreen", { bookmarks: bookmarks });*/
- } else {
- var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].
- getService(Components.interfaces.nsIPromptService);
- var text = strings.getString("extensions.ybookmarks.import.bookmarks.manager.instructions");
- promptService.alert(this, "Delicious", text);
- }
-
- } catch (e) {
- yDebug.print("yb_importBookmarks(): " + e, YB_LOG_MESSAGE);
- }
-
- }
-
- window.onload = ybStartup;
-